The present invention relates to real-time performance modeling, and more specifically, to methods and systems for determining real-time performance models of systems that process multi-class workloads.
Current software systems continuously self-reconfigure their components to adapt to run-time changes in the host and network environments. In particular, Internet based online applications operate in a highly dynamic environment with fast changing user workloads and browsing patterns. Changes may also occur in the virtualized system platform that runs the software application. In an e-commerce based online shopping system, processed user workload may include authentication transactions such as login and business transactions such as browsing a catalog, searching for products, adding items to a shopping cart, and proceeding to check out. Each of these transactions uses the e-commerce server's resources differently and can be classified into different classes.
The quality of a software system is often measured in terms of its performance, which can be for example, end to end response time from a user's point of view. A performance model of a system can be used for predictive analysis of the system, (e.g., for response time prediction at hypothetical workloads). Performance models of an adaptive software (AS) system, for example, can be useful for autonomic control, if they are updated in real-time to reflect the changes in the software system parameters. However, performance modeling of an AS system has drawbacks. For example, classical queueing theory based performance models require the knowledge of parameters such as service times and network queueing delays for different classes of transactions. These parameters are used to compute and predict performance metrics such as average transaction response time, average number of jobs/transactions waiting to be processed, and the like. There are existing techniques that implement simulations and manual calibrations to compute similar performance metrics. However, none of these techniques can be practically applied if the service times and network queueing delays are unknown. Instrumentating software applications with probes in order to actually measure the service time and delay parameters can be intrusive, requires extensive manual coding and can be time consuming. In addition, the source code of a standard, commercialized e-commerce software system may not even be accessible. Moreover, instrumentation is an iterative procedure and is difficult to pursue in a dynamically changing environment, which is often the case for an AS system that undergoes continuous changes that can lead to time-varying service times and delays. These system parameters must therefore be estimated using only readily available measurement data. Other approaches implement inferencing algorithms to estimate a service time and network queueing delay based performance model. Inferencing allows one to compute the service time and delay parameters from readily available measurement data on end-to-end response times, CPU utilizations and workload arrival rates. Inferencing however models service time and delay using stationary model parameters and cannot be used for AS systems with time-varying parameters.
Performance models can play an important role in accurately driving the necessary dynamic changes in an AS system. For instance, at runtime, software systems can better adapt to the changes in execution environment if an underlying performance model of the system is known. A performance model updated in real-time can be combined with model predictive control to achieve autonomic control of a software system. FIG. 1 illustrates an example of the autonomic control architecture of an AS system. Reliable and optimal control of a software system in order to achieve the desired objective is critically dependent on the service time and network queueing delay model parameters that characterize the system. Robust control can only be achieved if the system model parameters accurately reflect the changes in the software system at runtime. Since autonomic control of a software system may lead to reconfiguration of the software architecture at run-time, the underlying model parameters may not remain constant and can vary with time. It is thus important to accurately track the time-varying model parameters of an AS system in real-time.